package top.xbaoziplus.company.utils;

import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

/**
 * @author xBaozi
 * @version 1.0
 * @classname EntityUtils
 * @description 对象与Map转换工具类
 * @date 2022/7/5 10:27
 */
public class EntityUtils {
    /**
     * @description     实体类对象转换称Map
     * @author xBaozi
     * @date 10:28 2022/7/5
     * @param object    需要转换的实体类对象
     **/
    public static Map<String, Object> entityToMap(Object object) {
        Map<String, Object> map = new HashMap<>();
        // 获取对象字段
        for (Field field : object.getClass().getDeclaredFields()) {
            try {
                // 获得字段是否可获得状态
                boolean flag = field.isAccessible();
                // 设置字段可获得
                field.setAccessible(true);
                // 获取字段值
                Object o = field.get(object);
                // 以字段名-字段值形式将书存入map中
                map.put(field.getName(), o);
                // 将字段是否可获得恢复原状态
                field.setAccessible(flag);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return map;
    }
}
